草庐IT

MySQL group-by 非常慢

全部标签

mysql - 不能在 mysql 函数中使用别名作为 ORDER BY 子句的一部分

如果我执行以下查询,它工作正常。SELECTCASEWHENdescriptionLIKE'%a%'THEN'A'WHENdescriptionLIKE'%b%'THEN'B'ELSE'C'ENDASfoo,COUNT(*)AScntFROMproductpGROUPBYfooORDERBYfoo;结果是这样的foo|cnt-----------A|809B|29C|55但是,下面的查询给出了一个错误。请注意,我只更改了最后一行。SELECTCASEWHENdescriptionLIKE'%a%'THEN'A'WHENdescriptionLIKE'%b%'THEN'B'ELSE'C'

ORDER BY 的 MySQL 索引,日期范围在 WHERE

假设您有一个包含以下列的表:iddatecol1我希望能够使用特定的ID和日期查询此表,并按另一列排序。例如,SELECT*FROMTABLEWHEREid=?ANDdate>?ORDERBYcol1DESC根据thisrange文档,索引在遇到>运算符后将停止使用。但是根据this按文档排序,如果索引按索引中的最后一列排序,则索引只能用于优化orderby子句。是否可以对该查询的每个部分进行索引查找,或者您只能获得3个中的2个?我能做得比index(id,date)更好吗? 最佳答案 计划A:INDEX(id,date)--如果它

php - MySQL 非常偶然 Unable save result set

这是一个生产PHP/MySQL系统,已经运行了几个月,大部分时间都没有问题。偶尔,比如每隔几周一次,我会看到来自MySQL查询的“无法保存结果集”错误。我知道这可能是由大型结果集引起的,但这里不是这种情况。在最近的示例中,它发生在通常不超过10行的小table上(行代表正在进行的游戏,并且在游戏结束后它们会被删除——很多翻转,但总是很小)。查询很简单:SELECTplayer_1_id,player_2_idFROMminuetServer_gamesWHERE(player_1_id='1513399'ORplayer_2_id='1513399')ANDlast_action_ti

mysql - ORDER BY UPPER(列)是错误的

对于MySQL5.6,给定以下表结构:mysql>describegroups;+-------------+--------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+-------------+--------------+------+-----+---------+----------------+|id|int(11)|NO|PRI|NULL|auto_increment||name|varchar(500)|YES||NULL|||description

MYSQL SELECT 最近的 id 和 ORDER BY

我想做的是获取每个resort_id的最新结果,然后是ORDERBYsnow_depth。前两部分我已经完成了。排序是不起作用的部分。到目前为止我有什么SELECT*FROMsnow_conditionst1NATURALJOIN(SELECTMAX(weather_id)ASweather_id,resort_idFROMsnow_conditionsGROUPBYresort_id)t2ORDERBYsnow_depthDESCweather_id是自动递增的,所以我用它代替save_time以减少计算资源。让我困惑的是结果以snow_depth的一些奇怪的偏序出现。+------

mysql - `MySQL GROUP BY 使用索引时速度较慢

我在AWSm4.large(2个vCPU,8GB内存)上运行,我看到关于MySQL和GROUPBY的行为有点令人惊讶。我有这个测试数据库:CREATETABLEdemo(timeINT,wordVARCHAR(30),countINT);CREATEINDEXtimeword_idxONdemo(time,word);我插入4,000,000条记录,其中包含(一致的)随机词"t%s"%random.randint(0,30000)和时间random.randint(0,86400).SELECTword,time,sum(count)FROMdemoGROUPBYtime,word;3

php - Doctrine Paginator 选择整个表格(非常慢)?

这与此处的前一个问题有关:Doctrine/Symfonyquerybuilderaddselectonleftjoin我想使用DoctrineORM执行复杂的连接查询。我想选择10篇分页的博客文章,留下一个作者,比如当前用户的值(value),以及帖子上的主题标签。我的查询构建器如下所示:$query=$em->createQueryBuilder()->select('p')->from('Post','p')->leftJoin('p.author','a')->leftJoin('p.hashtags','h')->leftJoin('p.likes','l','WITH','

c# - 在 LINQ 查询中应用 group by,进一步连接所需的信息丢失

我有以下模型:publicclassCourse{publicintId{get;set;}publicstringName{get;set;}}publicclassCourse_TutionCenter{publicintId{get;set;}publicintCourseId{get;set;}publicintTutionCenterId{get;set;}[ForeignKey("CourseId")]publicvirtualCourseCourse{get;set;}[ForeignKey("TutionCenterId")]publicvirtualTutionCen

php - 拉维尔 5.4 : How to order by count(column) in eloquent?

我正在尝试显示按assigned_to票数最多的受让人姓名。$accesses=Access::where('state','=','Assigned');$all=Report::where('state','=','Assigned')->union($accesses)->orderBy('count(assigned_to)')//THISISWRONG->get(); 最佳答案 你必须使用DB::raw来获取它$all=Report::where('state','=','Assigned')->select(DB::ra

mysql - SQL GROUP BY 两个不同的组

是否可以列出仅包含唯一海岸和地区的城市名称?(即同一海岸同区域有多个城市,应排除)例子:TABLE_NAME=MAPCityCoastRegionNewYorkEast1BuffaloEast1LAWest2SeattleWest1SanJoseWest3FloridaEast4BostonEast2SanDiegoWest2在此示例中,我希望输出为:SeattleSanJoseFloridaBoston纽约和布法罗被省略,因为它们共享相同的海岸和地区,就像洛杉矶和圣地亚哥一样。我试过:SELECTDISTINCTCOAST,REGIONFROMMAP这给了我成本和地区,但没有城市的名